package tienda.zapateria.siszap.gui.control.model;

import java.util.List;
import org.rx.cr.gui.table.AbstractTableModel;

import tienda.zapateria.siszap.be.BERelacionTalla;

public class ModelArticuloAsignadoCompra extends AbstractTableModel<BERelacionTalla> {

    private final List<BERelacionTalla> List;

    public ModelArticuloAsignadoCompra() {
        setTitles(new String[]{"Cantidad", "Descripción", "P.U.", "Subtotal"});
        this.List = null;
    }

    public ModelArticuloAsignadoCompra(List<BERelacionTalla> List) {
        setTitles(new String[]{"Cantidad", "Descripción", "P.U.", "Subtotal"});
        this.List = List;

    }

    @Override
    public Object getObjectCell(int fila, int columna) {
        switch (columna) {

            case 0:
                return get(fila).getCantidad();//debe ser cantidad
            case 1:
                return get(fila).getTipo() + " " + get(fila).getMarca()
                        + " " + get(fila).getMaterial() + " " + get(fila).getColor()
                        + " " + get(fila).getAmericana() + "/" + get(fila).getEuropea();

            case 2:
                return get(fila).getPreciocompra();
            case 3:
                return get(fila).getSubtotal();//debe ser precio subtotal

            default:
                return null;

        }
    }

    @Override
    public boolean isCellEditable(int rowIndex, int colIndex) {
        if (colIndex == 0) {
            return true;
        } else {
            return false;
        }
    }

    @Override
    public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
        BERelacionTalla be = List.get(rowIndex);
        if (0 == columnIndex) {
            be.setCantidad(Integer.parseInt(aValue.toString()));
            be.setSubtotal(be.getCantidad() * be.getPreciocompra());
        } else if (1 == columnIndex) {
            be.setDescripcion((String) aValue);
        } else if (2 == columnIndex) {
            be.setPrecioventa(Double.parseDouble(aValue.toString()));
        } else if (3 == columnIndex) {
            be.setSubtotal(Double.parseDouble(aValue.toString()));
        }

    }

    @Override
    public int getColumnCount() {
        return 4;
    }

}
